home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / ugoku / src.lzh / MOVRECG / MRCGPAC.C < prev    next >
Text File  |  1994-09-09  |  39KB  |  1,428 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9. #include <tifflib.h>
  10. #include <egb.h>
  11. #include <mos.h>
  12. #include <snd.h>
  13. #include "video.h"
  14. #include "ugoku.h"
  15. #include "old_mov.h"
  16. #include "mrcdef.h"
  17.  
  18. #define VRAMOFST 262144        /* VRAM OFFSET FOR FRAME ORIGINAL DATA */
  19.  
  20. extern    int        mouseSwCheck() ;
  21. extern    int        errorCheck( int ) ;
  22.  
  23. extern    char    *guiEgbPtr ;    /*    EGB é╠âÅü[âNâAâhâîâX    */
  24. extern    char    *rbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  25. extern    char    *bbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  26. extern    int    xtif, ytif ;        /*    tiffdataé╠Åcëíò¥    */
  27. //extern char tifName[][16] ;
  28. //extern int tifTotal ;
  29.  
  30. extern int    baseDialogId ;
  31.  
  32. int    pacDialogId = -1 ;
  33. int    pacSubDialogId = -1 ;
  34. int    pacRoughBar = -1 ;
  35. int    pacRoughNumId = -1 ;
  36. int    pacMesId[8] = -1 ;
  37. int    pacTIconId[2] = -1 ;
  38. int    pacFilterBar = -1 ;
  39. int    pacFilterNumId = -1 ;
  40. int    pacOKBtnId = -1 ;
  41. int    pacCanBtnId = -1 ;
  42. int    pacWaitDialogId = -1 ;
  43. int    pacWaitMesId[2] = -1 ;
  44. int    pacWaitNumId[2] = -1 ;
  45.  
  46. static int svar[] = { 0,0,0,0,0,0,319,239,0,0,0, 0,0,0 };
  47. /*
  48.     svar[] = { frame, total_byte, rough, premove, x0,y0,x1,y1, b,r,g,
  49.            soft, color_rate, mode }
  50.                            ü¬ ü¬é▒é╠2é┬é═èOòöé⌐éτéóé╢é┴é─é═é╛é▀
  51. */
  52. static int pacRough = 0 ;
  53. static int idouMode = 1 ;
  54. static int pacFilter = 0 ;
  55. static int pacOkFlg ;
  56.  
  57. /* ô«ëµì∞ɼ(ÉVïK) */
  58. tifToMov( namemov, path, total, nbuffer )
  59. char *namemov, path[], nbuffer[][16] ;
  60. int total ;
  61. {
  62.     int error ;
  63.  
  64.     MMI_SendMessage( pacDialogId, MM_ATTACH, 1, baseDialogId ) ;
  65.     MTL_setFlagObj( pacTIconId[idouMode+0], (MS_UNSELECT | MS_TOGGLE) ) ;
  66.  
  67.     MMI_SendMessage( pacDialogId, MM_SHOW, 0 ) ; /* î⌐é╣éΘ */
  68.  
  69.     MMI_ExecSystem() ;        /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
  70.     svar[0] = 0 ;
  71.     svar[1] = 0 ;
  72.     svar[2] = pacRough ;
  73.     svar[3] = idouMode * 8 ;
  74.     svar[11] = pacFilter ;
  75.  
  76.     MMI_SendMessage( pacDialogId, MM_ERASE, 0 ) ;
  77.     MMI_SendMessage( pacDialogId, MM_DETACH, 0 ) ;
  78.  
  79.     error = 0 ;
  80.     if( pacOkFlg == TRUE )
  81.     {
  82.         EGB_writePage(guiEgbPtr,1);
  83.         EGB_color( guiEgbPtr, 1, 0 ) ;
  84.         EGB_clearScreen(guiEgbPtr);            /* clear */
  85.         EGB_displayStart(guiEgbPtr,3,0,0);
  86.         EGB_displayStart(guiEgbPtr,2,1,1);
  87.         EGB_displayStart(guiEgbPtr,2,2,2);
  88.         EGB_displayStart(guiEgbPtr,0,0,0);
  89.         EGB_displayStart(guiEgbPtr,1,0,0);
  90.         EGB_displayStart(guiEgbPtr,3,320,240);
  91.         EGB_displayPage(guiEgbPtr,0,3);
  92.         EGB_writePage(guiEgbPtr,0);            /* pageé≡î│é╔û▀é│é╚éóé╞û\æû */
  93.  
  94.         tifToMovSet( total ) ;
  95.  
  96.         SetMouse16( 81, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡âEâGâCâgò\Ī */
  97.         error = mov_save( namemov, path, total, nbuffer ) ;
  98.         SetMouse16( 80, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡î│é╔ */
  99.  
  100.         tifToMovReset() ;
  101.  
  102.         EGB_displayPage(guiEgbPtr,0,1);
  103.     }
  104.  
  105.     MMI_FlushEvnt() ;    /* âCâxâôâgé≡âtâëâbâVâà */
  106.     /* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
  107.     if( mouseSwCheck() )TL_setInvalidMosFlag() ;
  108.  
  109.     if( error )
  110.     {
  111.         errorCheck( error ) ;
  112.     }
  113.  
  114.     return NOERR ;
  115. }
  116.  
  117. /* ô«ëµì∞ɼ(Æ╟ë┴) */
  118. tifToMovAdd( namemov, path, total, nbuffer )
  119. char *namemov, path[], nbuffer[][16] ;
  120. int total ;
  121. {
  122.     int error ;
  123.  
  124.     MMI_SendMessage( pacDialogId, MM_ATTACH, 1, baseDialogId ) ;
  125.     MTL_setFlagObj( pacTIconId[idouMode+0], (MS_UNSELECT | MS_TOGGLE) ) ;
  126.  
  127.     MMI_SendMessage( pacDialogId, MM_SHOW, 0 ) ; /* î⌐é╣éΘ */
  128.  
  129.     MMI_ExecSystem() ;        /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
  130.  
  131.     svar[2] = pacRough ;
  132.     svar[3] = idouMode * 8 ;
  133.     svar[11] = pacFilter ;
  134.  
  135.     MMI_SendMessage( pacDialogId, MM_ERASE, 0 ) ;
  136.     MMI_SendMessage( pacDialogId, MM_DETACH, 0 ) ;
  137.  
  138.     error = 0 ;
  139.     if( pacOkFlg == TRUE )
  140.     {
  141.         EGB_writePage(guiEgbPtr,1);
  142.         EGB_color( guiEgbPtr, 1, 0 ) ;
  143.         EGB_clearScreen(guiEgbPtr);            /* clear */
  144.         EGB_displayStart(guiEgbPtr,3,0,0);
  145.         EGB_displayStart(guiEgbPtr,2,1,1);
  146.         EGB_displayStart(guiEgbPtr,2,2,2);
  147.         EGB_displayStart(guiEgbPtr,0,0,0);
  148.         EGB_displayStart(guiEgbPtr,1,0,0);
  149.         EGB_displayStart(guiEgbPtr,3,320,240);
  150. //        EGB_displayPage(guiEgbPtr,0,2);
  151.         EGB_displayPage(guiEgbPtr,0,0);
  152.         EGB_writePage(guiEgbPtr,0);            /* pageé≡î│é╔û▀é│é╚éóé╞û\æû */
  153.  
  154.         error = mov_head_read(namemov, svar) ;    /* headô╟é±é┼frameé≡æùéΘ */
  155.         if( error == NOERR )
  156.         {
  157.             tifToMovSet( total ) ;
  158.             EGB_displayPage(guiEgbPtr,0,3);
  159.  
  160.             SetMouse16( 81, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡âEâGâCâgò\Ī */
  161.             error = mov_save( namemov, path, total, nbuffer ) ;
  162.             SetMouse16( 80, 0xf, 0x8 ) ;    /* â}âEâXâJü[â\âïé≡î│é╔ */
  163.  
  164.             tifToMovReset() ;
  165.         }
  166.         EGB_displayPage(guiEgbPtr,0,1);
  167.     }
  168.  
  169.     MMI_FlushEvnt() ;    /* âCâxâôâgé≡âtâëâbâVâà */
  170.     /* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
  171.     if( mouseSwCheck() )TL_setInvalidMosFlag() ;
  172.  
  173.     if( error )
  174.     {
  175.         errorCheck( error ) ;
  176.     }
  177.  
  178.     return NOERR ;
  179. }
  180.  
  181. tifToMovSet( total )
  182. int total ;
  183. {
  184.     extern int r_waku_clear1( int, int, int ) ;
  185.  
  186.     EGB_writePage(guiEgbPtr,0);
  187.  
  188.     r_waku_clear1( 320, 240, 2 ) ;
  189.  
  190.     MMI_SendMessage( pacWaitDialogId, MM_ATTACH, 1, baseDialogId ) ;
  191.  
  192.     MMI_SendMessage( pacWaitNumId[0], MM_SETNUMBOX, 5,
  193.         total+svar[0], 0, total+svar[0], 1, 0 ) ;    /* î┤ëµâtâîü[âÇÉöÉ▌ÆΦ */
  194.                     /*    var, min, max, delta, ptColumn */
  195.     MMI_SendMessage( pacWaitNumId[1], MM_SETNUMBOX, 5,
  196.         0, 0, total+svar[0], 1, 0 ) ;        /* ê│Åkâtâîü[âÇÉöÉ▌ÆΦ */
  197.                     /*    var, min, max, delta, ptColumn */
  198.  
  199.     MMI_SendMessage( pacWaitDialogId, MM_SHOW, 0 ) ;
  200.  
  201.     return NOERR ;
  202. }
  203.  
  204. tifToMovReset()
  205. {
  206.     extern int r_waku_del() ;
  207.  
  208.     EGB_writePage(guiEgbPtr,0);
  209.  
  210.     MMI_SendMessage( pacWaitDialogId, MM_ERASE, 0 ) ;
  211.     MMI_SendMessage( pacWaitDialogId, MM_DETACH, 0 ) ;
  212.  
  213.     r_waku_del() ;
  214.  
  215.     return NOERR ;
  216. }
  217.  
  218. /*    initDataIRCPAC:pacRoughBar:MJ_SCRLL40é╠î─é╤Åoé╡è╓Éö    */
  219. int    pacRoughSet(kobj, messId, argc, pev, trigger)
  220. int        kobj ;
  221. int        messId ;
  222. int        argc ;
  223. EVENT    *pev ;
  224. int        trigger ;
  225. {
  226.     int    var, min, max, len, page ;
  227.     MMI_SendMessage( kobj, MM_GETSCROLL, 5,
  228.                                         &var, &min, &max, &len, &page ) ;
  229.     pacRough = var*8 / 16 ;    /* var * Ælé╠ÆåÉSÆl / âoü[é╠ÆåÉSé╠Æl */
  230.     MMI_SendMessage( pacRoughNumId, MM_SETNUMBOX, 5,
  231.                      pacRough, 0, pacRough, 1, 0 ) ;
  232.                     /*    var, min, max, delta, ptColumn */
  233.     MMI_SendMessage( pacRoughNumId, MM_SHOW, 0 ) ;
  234.  
  235.     return NOERR ;
  236. }
  237.  
  238. /*    initDataIRCPAC:pacFilterBar:MJ_SCRLL40é╠î─é╤Åoé╡è╓Éö    */
  239. int    pacFilterSet(kobj, messId, argc, pev, trigger)
  240. int        kobj ;
  241. int        messId ;
  242. int        argc ;
  243. EVENT    *pev ;
  244. int        trigger ;
  245. {
  246.     int    var, min, max, len, page ;
  247.     MMI_SendMessage( kobj, MM_GETSCROLL, 5,
  248.                                         &var, &min, &max, &len, &page ) ;
  249.     pacFilter = var*8 / 16 ;    /* var * Ælé╠ÆåÉSÆl / âoü[é╠ÆåÉSé╠Æl */
  250.     MMI_SendMessage( pacFilterNumId, MM_SETNUMBOX, 5,
  251.                      pacFilter, 0, pacFilter, 1, 0 ) ;
  252.                     /*    var, min, max, delta, ptColumn */
  253.     MMI_SendMessage( pacFilterNumId, MM_SHOW, 0 ) ;
  254.  
  255.     return NOERR ;
  256. }
  257.  
  258. /*    initDataIRCPAC:pacTIconId[0]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  259. /*    initDataIRCPAC:pacTIconId[1]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  260. int    pacIdouFunc(kobj, messId, argc, pev, trigger)
  261. int        kobj ;
  262. int        messId ;
  263. int        argc ;
  264. EVENT    *pev ;
  265. int        trigger ;
  266. {
  267.     if( kobj == pacTIconId[0] )
  268.     {
  269.         MTL_setFlagObj( pacTIconId[0], MS_UNSELECT ) ;
  270.         MTL_resetFlagObj( pacTIconId[idouMode+0],
  271.                                  (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  272.         MMI_SendMessage( pacTIconId[idouMode+0], MM_SHOW, 0 ) ;
  273.         idouMode = 0 ;
  274.     }
  275.     else
  276.     if( kobj == pacTIconId[1] )
  277.     {
  278.         MTL_setFlagObj( pacTIconId[1], MS_UNSELECT ) ;
  279.         MTL_resetFlagObj( pacTIconId[idouMode+0],
  280.                                  (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  281.         MMI_SendMessage( pacTIconId[idouMode+0], MM_SHOW, 0 ) ;
  282.         idouMode = 1 ;
  283.     }
  284.     return NOERR ;
  285. }
  286.  
  287. /*    initDataIRCPAC:pacOKBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  288. /*    initDataIRCPAC:pacCanBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  289. int    pacOKchk(kobj, messId, argc, pev, trigger)
  290. int        kobj ;
  291. int        messId ;
  292. int        argc ;
  293. EVENT    *pev ;
  294. int        trigger ;
  295. {
  296.     pacOkFlg = 0 ;
  297.     if( kobj == pacOKBtnId )pacOkFlg = TRUE ;
  298.     MMI_SetHaltFlag( TRUE ) ;
  299.     return NOERR ;
  300. }
  301.  
  302.  
  303.  
  304.  
  305.  
  306. /* mov2 head read */
  307.  
  308. mov_head_read(namemov, svar)
  309. char *namemov;
  310. int svar[];
  311. {
  312.     FILE *fp;
  313.     int n, temp, page, size;
  314.     char head[256], para[80];
  315.  
  316.     if( ( fp = fopen( namemov, "rb" ) ) == NULL )return 1;
  317.     temp = fread( head, 256, 1, fp );
  318.     if( temp < 1 )goto movh10;
  319.     if( DWORD( head+0 ) != 0x32564f4d )goto